/*
1. push() 向数组末尾添加一个或多个元素，并返回新的长度
2. pop() 删除数组末尾的元素，并返回该元素的值
3. shift() 删除数组的第一个元素，并返回该元素的值
4. unshift() 向数组的开头添加一个或多个元素，并返回新的长度
5. slice() 返回一个新的数组对象，这个对象是一个由 begin 和 end 决定的原数组的浅拷贝
6. splice() 通过删除或替换现有元素或者原地添加新的元素来修改数组，并以数组形式返回被修改的内容
7. concat() 用于合并两个或多个数组。此方法不会更改现有数组，而是返回一个新数组
8. map() 创建一个新数组，其结果是该数组中的每个元素都调用一个提供的函数后返回的结果
9. filter() 创建一个新数组，其中包含通过所提供函数实现的测试的所有元素
10. reduce() 对数组中的所有元素执行一个提供的函数，并将其结果累加到单个返回值中
11. find() 返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
12. findIndex() 返回数组中满足提供的测试函数的第一个元素的索引。否则返回 -1
13. includes() 判断一个数组是否包含一个指定的值，返回 true 或 false
*/

// 1. push() 向数组末尾添加一个或多个元素，并返回新的长度
let arr1 = [1, 2, 3];
console.log(arr1.push(4, 5)); // 5
console.log(arr1); // [1, 2, 3, 4, 5]

// 2. pop() 删除数组末尾的元素，并返回该元素的值
let arr2 = [1, 2, 3];
console.log(arr2.pop()); // 3
console.log(arr2); // [1, 2]

// 3. shift() 删除数组的第一个元素，并返回该元素的值
let arr3 = [1, 2, 3];
console.log(arr3.shift()); // 1
console.log(arr3); // [2, 3]

// 4. unshift() 向数组的开头添加一个或多个元素，并返回新的长度
let arr4 = [1, 2, 3];
console.log(arr4.unshift(4, 5)); // 5
console.log(arr4); // [4, 5, 1, 2, 3]

// 5. slice() 返回一个新的数组对象，这个对象是一个由 begin 和 end 决定的原数组的浅拷贝
let arr5 = [1, 2, 3, 4, 5];
console.log(arr5.slice(1, 3)); // [2, 3]

// 6. splice() 通过删除或替换现有元素或者原地添加新的元素来修改数组，并以数组形式返回被修改的内容
let arr6 = [1, 2, 3, 4, 5];
console.log(arr6.splice(1, 2, 6, 7)); // [2, 3]
console.log(arr6); // [1, 6, 7, 4, 5]

// 7. concat() 用于合并两个或多个数组。此方法不会更改现有数组，而是返回一个新数组
let arr7 = [1, 2, 3];
let arr8 = [4, 5]
            
// 8. map() 创建一个新数组，其结果是该数组中的每个元素都调用一个提供的函数后返回的结果
let arr9 = [1, 2, 3];
let arr10 = arr9.map((item) => item * 2);
console.log(arr10); // [2, 4, 6]

// 9. filter() 创建一个新数组，其中包含通过所提供函数实现的测试的所有元素
let arr11 = [1, 2, 3, 4, 5];
let arr12 = arr11.filter((item) => item % 2 === 0);
console.log(arr12); // [2, 4]

// 10. reduce() 对数组中的所有元素执行一个提供的函数，并将其结果累加到单个返回值中
let arr13 = [1, 2, 3, 4, 5];
let sum = arr13.reduce((prev, curr) => prev + curr);
console.log(sum); // 15

// 11. find() 返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
let arr14 = [1, 2, 3, 4, 5];
let result = arr14.find((item) => item > 3);
console.log(result); // 4

// 12. findIndex() 返回数组中满足提供的测试函数的第一个元素的索引。否则返回 -1
let arr15 = [1, 2, 3, 4, 5];
let index = arr15.findIndex((item) => item > 3);
console.log(index); // 3

// 13. includes() 判断一个数组是否包含一个指定的值，返回 true 或 false
let arr16 = [1, 2, 3, 4, 5];
console.log(arr16.includes(3)); // true
console.log(arr16.includes(6)); // false

